# Практика SQL ## Функции getmnemocode, getheadline и getattribute В SQL-запросе заместо получения хэдлайна, мнемокода или иного атрибута через join или подзапрос можно использовать функции `getmnemocode`, `getheadline` и `getattribute`. ```SQL --getmnemocode getmnemocode(idpclass bigint, idpobj bigint) getmnemocode(gid text) --getheadline getheadline(idpclass bigint, idpobj bigint) getheadline(gid text) --getattribute getattribute(idpclass bigint, idpobj bigint, spattr text) getattribute(pgid text, pattr text) ``` Данные процедуры можно использовать, если возвращается немногочисленные объекты, иначе на БД будет большая нагрузка. ```{attention} Нельзя использовать при формировании отчётов или отображения List. ``` Можно использовать для: - получения данных через onRefreshExt для отображение Card и ему подобных - печатных форм - для разового анализа данных через приложение управления БД (напримеир, dbeaver) Примеры использования: ```SQL select t.sRegNum , t.dReg , t.idService --для id нужно принудительно указать класс , getmnemocode(51001,t.idService) idServiceMC , getheadline(51001,t.idService) idServiceHL --гид можно сразу передать на вход , t.gidSrc , getmnemocode(t.gidSrc) as gidSrcMC , getheadline(t.gidSrc) as gidSrcHL --getattribute , getattribute('2101', t.idResourceholder, 'gid') gidResourceHolder , getheadline(getattribute('2101', t.idResourceholder, 'gid')) as idResourceHolderHL from oil_tankerpos t ``` В разработке расширение методов: ```SQL --getmnemocode getmnemocode(sNameTb text, idpobj bigint) --getheadline getheadline(sNameTb text, idpobj bigint) ```